package 算法;

import static test1.student.studenttest.printArr;

public class 冒泡排序 {
    public static void main(String[] args) {
//        冒泡排序的规则：两两排序，小的放前面，大的放后面

        int[] arr = {36, 12, 6, 3, 9, 55, 94, 33, 152, 1, 36};
//        for (int i = 0; i < arr.length - 1; i++) {
//            请注意 在for中若  i<arr.length
//            在if条件中arr[i+1]则会超过索引的最大长度，会报错
//            所以，在for条件中 i<arr.length-1
//
//            if (arr[i] > arr[i + 1]) {
//                int temp = arr[i];
//                arr[i] = arr[i + 1];
//                arr[i + 1] = temp;
//            }
//        }
//        pritnArr(arr);
//    }（每遍历一次，都将最大的元素排到最后。 需要遍历 n-1次）
//          以上的方法为最笨，最麻烦的方法


        for (int i = 0; i < arr.length - 1; i++) {
//            表示循环的轮数
            for (int i1 = 0; i1 < arr.length - 1 - i; i1++) {
//                获取每次遍历的最大值，放到最后边
                if (arr[i1] > arr[i1 + 1]) {
                    int temp = arr[i1];
                    arr[i1] = arr[i1 + 1];
                    arr[i1 + 1] = temp;
                }
            }
        }
        printArr(arr);
    }
    private static void printArr(int[] arr) {
            for (int i = 0; i < arr.length; i++) {
                System.out.print(arr[i]+" ,");
            }
            System.out.println();
        }
    }




